/**
 * 第1章 Spring之旅
 * 代码清单-p1ch01a-5页a：Spring不会在HelloWorldBean上有任何不合理的要求 {@link top.kaoshanji.p1ch01a.HelloWorldBean}
 * 代码清单-p1ch01a-6页a：骑士只能执行拯救少女的任务 {@link top.kaoshanji.p1ch01a.DamselRescuingKnight}
 * 代码清单-p1ch01a-7页a：勇敢骑士 {@link top.kaoshanji.p1ch01a.BraveKnight}
 * 代码清单-p1ch01a-8页a：SlayDragonQuest是要注入到 BraveKnight中的Quest实现 {@link top.kaoshanji.p1ch01a.SlayDragonQuest}
 * 代码清单-p1ch01a-9页a：使用Spring将SlayDragonQuest注入到BraveKnight中-spring/knights.xml
 * 代码清单-p1ch01a-9页b：Spring提供了基于Java的配置，可作为XML的替代方案 {@link top.kaoshanji.p1ch01a.config.KnightConfig}
 * 代码清单-p1ch01a-10页a：加载包含Knight的Spring上下文 {@link top.kaoshanji.p1ch01a.KnightMain}
 * 代码清单-p1ch01a-13页a：吟游诗人是中世纪的音乐记录器 {@link top.kaoshanji.p1ch01a.Minstrel}
 * 代码清单-p1ch01a-14页a：将Minstrel声明为一个切面-spring/minstrel.xml
 * 代码清单-p1ch01a-01：启用一下切面 {@link top.kaoshanji.p1ch01a.MinstrelMain}
 * 代码清单-p1ch01a-16页a：许多Java API，例如JDBC，会涉及编写大量的样板式代码 {@link top.kaoshanji.p1ch01a.TemplateJDBC#getEmployeeByIdV1(long)}
 * 代码清单-p1ch01a-17页a：模板能够让你的代码关注于自身的职责 {@link top.kaoshanji.p1ch01a.TemplateJDBC#getEmployeeByIdV2(long)}
 *
 * 代码清单-p1ch01a-02：AnnotationConfigApplicationContext版本的容器 {@link top.kaoshanji.p1ch01a.AnnotationApplicationContextMain}
 *
 *
 * @author kaoshanji
 * ^_^
 * create time 2025/4/21 19:10
 */
package top.kaoshanji.p1ch01a;